package algorithm.sort;

import java.util.Arrays;

/**
 * 冒泡排序
 *
 * @author 杨 强
 * @package algorithm.sort
 * @createTime 2023-03-06 20:56
 */
public class BubblingSort {
    public static void main(String[] args) {
        int[] num = new int[]{11,5,6,7,10,9,7};
        bubblingSort01(num);
        System.out.println(Arrays.toString(num));
    }


    private static void bubblingSort01(int[] a){
        recurrenceSort(a, a.length-1);
    }

    /**
     * 冒泡排序的递归函数
     * @param a 待排序数组
     * @param j
     */
    private static void recurrenceSort(int[] a, int j){
        // 递归的退出条件
        if (j == 0){
            return;
        }

        int x = 0;

        // 进行一次排序
        for (int i = 0; i < j; i++) {
            if (a[i] > a[i + 1]) {
                int t = a[i];
                a[i] = a[i + 1];
                a[i + 1] = t;
                x = i;
            }
        }

        // 进行递归调用
        recurrenceSort(a, x);
    }

}
